﻿using NewModel.Shared.Annotations;
using NewModel.Shared.Annotations.ReSharper;
using NewModel.Shared.FunctionsCombinator;

using NUnit.Framework;

namespace NewModel.UnitTests._IntegrationTests_
{
    [TestFixture]
    public sealed class IntegrationTest_Combinator_Placeholders
    {
        [DataOnlyObject]
        sealed class Args
        {
            public string BoySad { get; set; }
            public string GirlSad { get; set; }
        }
        [DataOnlyObject]
        sealed class Result
        {
            public string Boy { get; set; }
            public string Girl { get; set; }
        }
        [UsedImplicitly(ImplicitUseTargetFlags.Members)]
        sealed class Container
        {
            [Placeholder("Someone")]
            public static string Someone(string someoneSad)
            {
                return someoneSad.Replace("sad", "funny");
            }
        }

//        [Test]
//        public void Resolve_Should_Return_Correct_Result()
//        {
//            var result = new Combinator<Args, Container, Result>()
//                .Evaluate(new Args
//                {
//                    BoySad = "sad dad",
//                    GirlSad = "sad mom"
//                });
//            result.Boy.Should().Be("funny dad");
//            result.Girl.Should().Be("funny mom");
//        }
    }
}